#ifndef MODELFACTORY_H
#define MODELFACTORY_H

#include "Model.h"

class Graphics;
class ModelFactory {
	
	public:

		ModelFactory(Config*, Graphics*);

		//facelength, centerX, centerY, centerZ
        Primitive* Cube(float, float, float, float);

		//facelength, centerX, centerY, centerZ
        Primitive* Plane(float, float, float, float);

		//radius1, radius2, height, centerX, centerY, centerZ, nrOfSlices, nrOfRings, gen
		Primitive* Cylinder(float, float, float, float, float, float, int, int, int);

		//radius1, radius2, angle1, angle2, centerX, centerY, centerZ, nrOfSlices, nrOfRings, gen
		Primitive* Disk(float, float, float, float, float, float, float, int, int, int);

		//radius, centerX, centerY, centerZ, nrOfSlices, nrOfRings, gen
		Primitive* Sphere(float, float, float, float, int, int/*, int*/);

		//radius1, radius2, centerX, centerY, centerZ, nrOfSlices, nrOfRings, gen
		Primitive* Torus(float, float, float, float, float, int, int, int);
		
	private:

		Config* config;
        Graphics* graphics;

};

#endif